<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>

        // 严格模式  'use strict'

        // var  let   const 

        //   共同点
        //      块级作用域  {}
        //      没有预编译(必须先声明后使用)
        //      在同一个作用域下，变量名不允许重复

        //   区别
        //     let  声明变量
        //     const  声明常量   不能被改变    (引用数据类型(只要地址不变))

        //     for 循环


        for(var i = 0 ;  i < 10 ; i++) {
            setTimeout(function(){
                console.log(i);   // 10个10
            })
        }

        for(let i = 0 ;  i < 10 ; i++) {
            // 相当于每个延时器都重新声明了变量i
            setTimeout(function(){
                console.log(i);   // 0-9
            })
        }


        // {
        //     let i = 0 ;
        //     延时器
        // }

        // {
        //     let i = 1 ;
        //     延时器
        // }

    </script>
    
</body>
</html>